#include<stdio.h>

// int main()
// {
//     printf("Hello World\n");
//     printf("这是梦开始的地方\n");
//     printf("This is a C Program\n");
//     return 0;
// }

// int main()
// {
//     printf("//how do you do!\n");
//     printf("/*刘康宇太棒了，图书馆怒学三小时，刷了鹏哥三个视频*/\n");
// return 0;
// }


// int main()
// {
//     int a,b,sum;
//     a=123;                     //第二个sum表示输出sum变量的值，  
//     b=456;                     //d表示用“十进制整数”形式输出。
//     sum=a+b;                   //在执行printf函数时，
//     printf("sum is %d\n",sum);//将sum变量的值取代双撇号中的%d。
//     return 0;                 //%d是指定的输出格式
// }
// int a=100;

// int main()
// {
//     printf("%zu\n",sizeof(char));
//     printf("%zu\n",sizeof(short));
//     printf("%zu\n",sizeof(int));
//     printf("%zu\n",sizeof(long));
//     printf("%zu\n",sizeof(long long));
//     printf("%zu\n",sizeof(float));
//     printf("%zu\n",sizeof(double));
// }

// int main()
// {
//     int a = 10;//建议不要将局部变量和全局变量的名字写成一样
//     printf("双精度浮点数是%.2f\n",price);//打印结果是66.60
//     float stock=6.66;
//     float price=66.6;
//     printf("a=%d\n",a);//当全局变量和局部变量名字相同的情况下，局部优先
//     printf("单精度浮点数是%f\n",stock);//%f默认打印6位小数，若想控制在2位
//     return 0;                         //则用%2f，即打印几位%f前面写几。
// }

// int main()
// {
//     int a,b,c;
//     a=123;
//     b=456;
//     c=a+b;
//     printf("a+b=%d\n",c);
//     return 0;
// }
// int main()
// {
//     int a;
//     int b;
//     printf("请输入两个整数：");
//     scanf("%d %d",&a,&b);
//     printf("%d + %d = %d\n",a,b,a+b);
//     return 0;
// }
// int main()
// {
//     int num1=0;
//     int num2 = 0;
//     scanf("%d %d",&num1,&num2);
//     int sum=num1+num2;
//     printf("num1+num2=%d\n",sum);
//     return 0;
// }
//int main()
// {
//     {            // 运行报错有未定义的变量
//         int a=10;//a的作用域只在这个花括号中
//     }
//     printf("a=%d\n",a);
//     return 0;
// }
//extern int a;引用外部的常量a
// void test()//定义一个叫test的函数
// {
//     printf("test的作用是输出a-->%d\n",a);
// }
// int main()
// {
//     test();//调用函数
//     {
//         printf("a=%d\n",a);
//     }
//     printf("a=%d\n",a);
//     return 0;//输出两行a=10
// }

//p5常量
//1.字面常量
//2.const修饰的常变量
//3.define 定义的标识符常量
//枚举常量
// int main()
// {
//     int a=10;
//     a=20;
//     const int b=20;//const修饰的a,本质是变量，但是不能被修改，有常量的属性
//     int arr[b]={0};//此处不可放b，需要放一个常量
//     printf("%d\n",a);//最终输出20，变量的值可以修改
//     return 0;
// }


// //枚举常量
// enum Color
// {
//     RED,
//     GREEN,
//     BLUE
// };
// #define MAX 100//定义一个符号叫MAX，它的值为100
// #define STR1 "qwer"
// #define STR2 'q'
// int main()
// {
//     enum Color c=RED;
//     printf("%d\n",c);//c的输出为0  
//     printf("%d\n",MAX);
//     int a=MAX;
//     printf("%d\n",a);
//     printf("%s\n",STR1);
//     printf("%c\n",STR2);
//     return 0;
// }

//p6字符串

// #include<string.h>
// int main()
// {
//     // 100-int
//     // #qwer$
//     // char 字符类型
//     // 'a';
//     // char ch='w';
//     //c语言中有没有字符串类型呢？  没有
//     //字符串   "abcdef";
//     char arr1[]="abcdef";//输出：abcdef
//     char arr2[]={'a','b','c','d','e','f'};//输出：abcdefabdcef
//     char arr3[]={'a','b','c','d','e','f','\0'};//输出：abcdef
//     char arr4[]={'a','b','c','d','e','f','\\0'};//输出：abcdef
//     //因为评论区有人说\0是字符串的结束标志，所以都好奇如何打印\0
//     //直接打印‘\’ '0' '\0'就ok了

//     // int len=strlen("abc");  //求字符串长度的一个函数，string length
//     // printf("%d\n",len);
//     printf("%d\n",strlen(arr1));//6
//     printf("%d\n",strlen(arr2));//6
//     printf("\\0\n");
//     printf("%s\n",arr1);
//     printf("%s\n",arr2);
//     printf("%s\n",arr3);
    
//     return 0;
// }

//P9转义字符
//%d - 打印整形
//%c - 打印字符
//%S - 打印字符串
//%f - 打印float数据的类型
//%1f - 打印double类型的数据
//三字母词
//??) means ]
//??( means [
// int main()
// {
//     // printf("%s\n","(are you ok??)");//有些古早编译器输出(are you ok]
//     // printf("%s\n","(are you ok\?\?)");//解决方法
//     // printf("%c\n",'\'');//  \为转义字符，输出'，双引号同理
//     // printf("abcd\\0ef");   //输出abcd\0ef
//     printf("%c\n",'\130');
//     printf("%c\n",'\x60');
//     printf("%d\n",strlen("c:\test\628\test.c"));
//     return 0;
// }

//P12
// int main()
// {
//     int coding=0;
//     printf("你会去敲代码吗?(选择1 or 0)\n(1即是坚持,0即是放弃):>");
//     scanf("%d",&coding);
//     if(coding==1)
//     {
//         printf("坚持，你会有好offer\n");
//     }
//     else
//     {
//         printf("放弃，回家卖红薯\n");
//     }
//     return 0;
// }

// int main()
// {
//     int input = 0;
//     printf("加入比特\n");
//     printf("要好好学习吗(1/0)?");
//     scanf("%d",&input);
//     if(input==1)
//     {
//         printf("既然你选择好好学习那就给你好offer\n");
//     }
//     else
//     {
//         printf("送外卖也有的活，美团超一线大厂");
//     }
//     return 0;
// }
// int main()
// {
//     int a;
//     scanf("%d",&a);
//     while(a<20000)
//     {
//         printf("写代码:%d\n",a);
//         a++;
//     }
//     if(a>=20000)
//     {
//         printf("你已经写了两万行代码，想必已经成为某一语言的大牛了,给你大厂offer");
//     }
//     else //这里的else意义不大，
//     {    //因为while的循环操作a不可能<20000
//         printf("继续加油\n");
//     }
//     return 0;
// }

// int main()
// {
//     int n1=0;
//     int n2=0;
//     scanf("%d %d",&n1,&n2);
//     int sum=n1+n2;
//     printf("这两个数相加的结果是:%d\n",sum);
//     return 0;

// }
// int Add(int x,int y)
// {
//     int z=0;
//     z=x+y;
//     return z;
// }
// int main()
// {
//     int n1=0;
//     int n2=0;
//     scanf("%d %d",&n1,&n2);

//     int sum=Add(n1,n2);
//     printf("两数求和为：%d\n",sum);
//     return 0;
// }

// int main()
// {
//     int arr[10]={10,11,12,13,14,15,16,17,18,19};
//     //printf("%d\n",arr[8]);//打印数组中的第八位数字
//     int i=0;
//     while(i<10)
//     {
//         printf("%d\n",arr[i]);
//         i=i+1;
//     }
//     return 0;

// }

//鹏哥P15视频16分牛客网题目
// int main() {

//     printf("       **\n"
//                    "**\n" 
//                 "**********\n"        
//                 "**********\n"
//                    "**\n"
//                    "**\n");
//     return 0;
// }

// int main()
// {
//     printf("      **\n");
//     printf("      **\n");
//     printf("   *************\n");
//     printf("   *************\n");
//     printf("      **\n");
//     printf("      **\n");
//     return 0;
// }

//牛客网BC32题目
// int main()
// {
//     printf("Name    Age    Gender\n"
//            "---------------------\n"
//            "Jack    18     man\n");
//            return 0;
// }       //目前牛客网已经搜不到了

//0 - 数字0
//'0' - 字符0 - ASCII值是48
//'\0' - 字符 -ASCII值是0
//EOF  -end of file 文件的结束标志

//'\n'是转义字符，  '\b'是转义字符 
//  '\060'是转义字符  'q'是转义字符

// int main()    //字符串碰到\0才会停下来   
// {             //没碰到就会一直数直到数到0为止
//     char arr[]={ 'b','i', 't'};       
//     printf("%d\n",strlen(arr));  //终端输出6
//     return 0;    //鹏哥终端输出15  因为字符串以\0结尾 这里没有
// } 

// #include<string.h>
// int main()
// {
//     int arr[10]={ 0 };
//     // char arr[]={'b','i','t'};
//     // printf("%d\n",strlen(arr));
//     return 0;
// }

// int n=10;
// int arr[n]={ 0 };
//C99标准之前，数组的大小都是用常量或者常量表达式来指定
//C99标准之后，支持了变长数组，这个时候允许数组的大小是变量
//但这种指定方式的数组是不能初始化的

// int main()
// {
//     int a=0;
//     int b=0;
//     scanf("%d%d",&a,&b);
//     if(a>b)
//     {
//         printf("%d\n",a);
//     }else{
//         printf("%d\n",b);
//     }
//     return 0;//用if当然可以实现求两个整数的较大值
// }            //但是题目里说了用函数

// int Max(int x,int y)
// {
//     if(x>y)
//         return x;
//     else
//         return y;
// }
// int main()
// {
//     int a=0;int b=0;
//     scanf("%d %d",&a,&b);
//     int r=Max(a,b);
//     printf("%d\n",r);
//     return 0;
// }

// int main()
// {
//     int x=0;
//     int y=0;
//     scanf("%d",&x);
//     if(x<0)
//         y=1;
//     else if(x==0)
//         y=0;
//     else
//         y=-1;

//     printf("%d\n",y);
//     return 0;
// }

// int main()
// {
//     int a = 7 / 2;
//     int b = 7 % 2;;//取模，取模操作符的两个操作符只能是整数
//     printf("%d\n",a);//打印结果为3
//     printf("%d\n",b);//打印结果为1
// }  除号的两端都是整数的时候，执行的是整数除法，
//    如果两端只要有一个浮点数就执行浮点数的除法
// int main()
// {
//     float a = 7 / 2.0;
//     float b = 7 % 2;;//取模
//     printf("%f\n",a);//打印结果为3.0000
//     printf("%f\n",b);//打印结果为1.0000
// }

// int main()
// {
//     int a=0;
//     a=20;
//     a=a+3;//a=23
//     a+=3;
//     a-=3;
//     a=a-3;
//     return 0;
// }

//c语言中，0表示假，非0表示真

// int main()
// {
//     int flag = 0;
//     if(!flag)           //int flag=2;此时下面printf不输出
//     {
//         printf("hehe\n");
//     }  //tips:if为假不打印，if为真才打印
//     return 0;
// }

// int main()
// {
    //sizeof是操作符，是单目操作符
    // int a = 10;
    // printf("%d\n",sizeof(a));//4
    // printf("%d\n",sizeof(int));//4
    // printf("%d\n",sizeof a);//4
    // printf("%d\n",sizeof int);//对于类型来说还是要加上括号，对于名字可以省略两边括号
    // int arr[10] = { 0 };
    // printf("%d\n",sizeof(arr)); //40 计算的是整个数组的大小，单位是字节
    // printf("%d\n",sizeof(arr[0]));//4
    // printf("%d\n",sizeof(arr) / sizeof(arr[0]));//10 - 数组的元素个数
    // int a=10;
    // //int b=a++;//后置加加，先使用，后++
    // //int b=a;a=a+1;
    // int b=++a;//前置++.先++,后使用
    //a=a+1;b=a;
    // int b=--a;
    // a=a-1;b=a;
    // printf("%d\n",b);//10
    // printf("%d\n",a);//11
    // return 0;
    // int a=(int)3.14;
    // printf("%d\n",a);
    //3.14字面浮点数，编译器默认理解为double类型
// }

// int main()
// {
//     //&&逻辑与 - 并且
    //||逻辑或 - 或者
    // int a=0;
    // int b=0;
    // if(a&&b)
    // {
    //     printf("hehe\n");
    // }
    // int a=0;
    // int b=0;
    // if(a||b)
    // {
    //     printf("hehe\n");
    // }
    // int a=10;
    // int b=20;
    // int r=(a>b ? a :b);
    // printf("%d\n",r);

    //逗号表达式就是逗号隔开的一串表达式
    //逗号表达式的特点：从左向右依次计算，整个表达式的结果是最后一个表达式的结果
    // int a=10;
    // int b=20;
    // int c=0;
    // //       c=8   a=28; 5
    // int d = (c=a-2,a=b+c,c-3);
    // printf("%d\n",d);
    // int arr[10] ={1,2,3,4,5,6,7,8,9,10};//此行里的括号不能用n
    // int n=3;//此种写法可行
    // arr[n] = 20;//[]就是下标引用操作符，arr和3就是[]的操作数
    
//     return 0;
// }

// int Add(int x,int y)
// {
//         return x+y;
// }
// int main(){
//     int sum=Add(2,3);  //sum后面的小圆括号就叫函数调用操作符，add,a,3都是()的操作数
//     return 0;
// }

// typedef unsigned int uint;
// //typedef就是将 unsigned int 命名为uint

// int main()
// {
//     unsigned int num = 0;//unsigned int为无符号整型
//     uint num2=1;//==上面的unsigned int
//     return 0;
// }

// static //1.修饰局部变量
//        //2.修饰全局变量
//        //3.修饰函数

// void test()
// {  //循环完再调用此函数时a又被重新赋值为1
//     int a=1;
//     a++;
//     printf("%d\n",a); //d打印结果是10个2
// }

// int main()
// {
//     int i=0;
//     while(i<10)
//     {
//         test();
//         i++;
//     }
//     return 0;
// }

// #include"add.h"
// //修饰全局变量，声明外部符号
// extern int g_val;
// int main()
// {
//     printf("%d\n",g_val);
//     return 0;
// }

//static修饰函数
// int Add(int x,int y)
// {
//     return x+y;
// }
// int main()
// {
//     int a=10;
//     int b=20;
//     int z=Add(a,b);
//     printf("%d\n",z);
//     return 0;
// }

//define定义标识符常量
// #define NUM 100

// //#define定义宏
// //宏是有参数
// //       宏名     宏的参数 （参数无类型）
// #define ADD(x,y) ((x)+(y))
// int Add(int x,int y)
// {
//     return x+y;
// }
// int main()
// {
//     //寄存器变量
//     //register int num = 3;//建议3存放在寄存器中O那个
//     // printf("%d\n",NUM);
//     // int n = NUM;
//     // printf("%d\n",n);
//     // int arr[NUM]= { 0 };//若没有define定义NUM100为常量，则写法错误
//     int a=10;
//     int b=20;
//     int c=ADD(a,b);
//     printf("%d\n",c);
//     return 0;
// }

// //define定义标识符常量
// #define MAX 1000
// //define定义宏
// #define ADD(x,y) ((x)+(y))

// int main()
// {
//     int sum=ADD(2,3);
//     printf("sum=%d\n",sum);

//     sum=10*ADD(2,3);
//     printf("sum=%d\n",sum);
//     return 0;
// }



//    指针
// int main()
// {
//     int a=10; //向内存申请4个字节，存储10
//     &a;//取地址操作符
//     printf("%p\n",&a);
//     int* p=&a;//p就是指针变量
//     *p=20;//解引用操作符，意思就是通过P中存放的地址，找到P所指向的对象
//        //*P就是P所指向的对象
//     printf("%d\n",a);
//     char ch='w';
//     char * pc=&ch;
//     *pc='q';
//     printf("%c\n",ch);
//     return 0;
// }

// int main()
// {
//     //int * p;
//     //char* p2;
//     //不管是什么类型的指针，都是在创建指针变量
//     //指针变量是用来存放地址的
//     //指针变量的大小取决于一个地址存放的时候需多大空间
//     //32位机器上的地址：32bit位，4byte，所以指针变量的大小是4个字节
//     //64位机器上的地址：64bit位，8byte，所以指针变量的大小是8个字节
//     //
//     printf("%d\n",sizeof(char*));
//     printf("%d\n",sizeof(short*));
//     printf("%d\n",sizeof(int*));
//     printf("%d\n",sizeof(float*));
//     printf("%d\n",sizeof(double*));
// }

// struct Stu
// {
//     //成员
//     char name[20];
//     int age;
//     char sex[10];
//     char tele[12];
// };
// void print(struct Stu* ps)
// {
//     printf("%s %d %s %s\n",(*ps).name,(*ps).age,(*ps).sex,(*ps).tele);
//     //  -> 
//     //结构体指针变量 -> 成员名
//     printf("%s %d %s %s\n",ps->name,ps->age,ps->sex,ps->tele);
// }
// int main()
// {
//     struct Stu s={"zhangsan",20,"nan","18888888888"};
//     //结构体对象.成员名
//     // printf("%s %d %s %s\n",s.name,s.age,s.sex,s.tele);
//     print(&s);
//     return 0;
// }

//BC18 计算带余除法
//描述：给定两个整数a和b（0<a,b<10000）,计算a除以b的整数商和余数
//输入描述
//一行，包括两个整数a和b，依次为被除数和除数(不为0)，中间用空格隔开。
//输出描述
//一行，包含两个整数，依次为整数商和余数，中间用一个空格隔开。
//示例1
//输入：15  2
//输出：7   1
//my own code
// int main()
// {
//     int a,b;
//     a=-10,b=100;
//     scanf("%d %d",&a,&b);
//     int a1=a/b;
//     int b1=a%b;
//     printf("%d %d",a1,b1);
//     return 0;
// }

// //鹏哥代码
// int main()
// {
//     int a=0;
//     int b=0;
//     //输入
//     scanf("%d %d",&a,&b);
//     int m=a/b;//可以不定义m,n
//     int n=a%b;//直接将printf中的m,n换成a/b,a%b
//     printf("%d %d\n",m,n);
//     return 0;
// }

// //初阶C语言  分支和循环语句
// int main()
// {
//     // int age;
//     // scanf("%d",&age);
//     // // if(age<18)
//     // //     printf("未成年\n");//不加大括号只能跟单条语句
//     // // else                  //加大括号可以跟多条语句
//     // //     printf("成年\n");
//     // if(age<18)
//     //     printf("青少年\n");
//     // else if(age>18&&age<28)
//     //     printf("青年");
//     // else if(age>28&&age<40)
//     //     printf("中年\n");
//     // else
//     //     printf("你是壮年要不就是老年人!\n");
//     int a=0;
//     int b=2;
//     if(a==1)
//         if(b==2)
//             printf("hehe\n");
//     else
//         printf("haha\n");
//     //上述代码终端显示为空，因为else和最近的if匹配
//     return 0;
// }
// int test()
// {
//     int a=3;
//     if(a==3)
//         return 1;
//     return 0;
// }

// int main()
// {
//     int r=test();
//     printf("%d\n",r);
//     return 0;
// }

//判断一个数是否是奇数
//My Own Code
// int main()
// {
//     int num,num1;
//     num1=num%2;
//     scanf("%d",&num);
//     if(num1==0)   这里由于对奇数偶数分不清判断写错辽
//     {
//         printf("你输入的数是奇数\n");
//     }
//     else{
//         printf("你输入的数不是奇数\n");
//     }
//     return 0;
// }

//鹏哥代码
// int main()
// {
//     int num=0;
//     scanf("%d",&num)
//     if(num % 2 == 1)
//          printf("奇数\n");
//     else
//         printf("No\n");
//     return 0; 
// }

//输出1-100之间的奇数,while用法忘记了，书，笔记本都没带，评论区代码：
// int main()
// {
//     for(int i=1;i<=100;i++){
//         if(i%2==1){
//             printf("1-100之间的奇数:%d\n",i);
//         }
//     }
//     return 0;
// }

//直播间评论学员代码
// int main()
// {
//     int i=1;
//     while (i<=100)
//     {
//         printf("1-100之间的奇数：%d\n",i);
//         i=i+2;
//     }
//     return 0;
// }

// int main()
// {
//     int i=1;
//     while ((i<=100))
//     {
//         if(i%2==1)
//             printf("%d\n",i);
//             i++;
//     }
//     return 0; 
// }

//switch语句
// int main()
// {
//     int day=0;
//     scanf("%d",&day);
//     //if(1==day)
//     //   printf("星期一\n");
//     //else if(2==day)
//     //    printf("星期二\n")
//     //else if(3==day)
//     //    printf("星期二\n")
//     //else....
//     switch(day)
//     {
//         case 1:
//             printf("星期一\n");
//             break;
//         case 2:
//             printf("星期二\n");
//             break;
//         case 3:
//             printf("星期三\n");
//             break;
//         case 4:
//             printf("星期四\n");
//             break;
//         case 5:
//             printf("星期五\n");
//             break;
//         case 6:
//             printf("星期六\n");
//             break;
//         case 7:
//             printf("星期天\n");
//             break;
//         default:
//         printf("选择错误\n");
//         break;
//     }
//     // switch(day)
//     // {
//     //     case 1:
//     //     case 2:
//     //     case 3:
//     //     case 4:
//     //     case 5:
//     //         printf("weekday\n"); 1-5都是输入weekday
//     //         break;
//     //     case 6:
//     //     case 7:
//     //         printf("weekend\n"); 6-7输入weekend
//     //         break;
//     // }
//     return 0;
// }

// int main()
// {
//     int n = 1;
//     int m=2;
//     switch (n)
//     {
//     case 1:
//             m++;
//     case 2:
//             n++;
//     case 3:
//             switch(n)
//             {
//                 case 1:
//                         m++;
//                 case 2:
//                         m++;
//                         n++;
//                         break;
//             }
//     case 4:
//             m++;
//             break;
//     default:
//         break;
//     }                    //入本
//     printf("m=%d,n=%d\n",m,n);
//     return 0;
// }

//打印1-10数字
// int main()  // My Own Code
// {
//     int i=0;  //此处所按为fn+f10
//     while(i<10){
//         i++;
//         printf("%d\n",i);
//     }
//     return 0;
// }

// int main()  //鹏哥代码
// {
//     int i=1;
//     while(i<=10){
//         i++;
//         if(5==i)
//             continue;
//         printf("%d ",i);
        
//     }
//     return 0;
// }

// int main()
// {
    //int ch = 0;
    //while(getchar())
    // int ch = getchar();;
    // printf("%c\n",ch);
    // putchar(ch); //2
    // while ((ch=getchar())!=EOF)
    // {
    //     putchar(ch);
    // }
    //举一个例子
    //假设密码是一个字符串
    // char password[20] = {0};
    // printf("请输入密码:>");
    // scanf("%s",password);
    // //getchar();//读取了n
    // int ch = 0; 
    // while((ch=getchar())!='\n');{
    //     ;
    // }
    // printf("请确认密码(Y/N)：");
    // int ret =getchar();
    // if('Y'==ret)
    // {
    //     printf("YES\n");
    // }
    // else{
    //     printf("No\n");
    // }
//     char ch='\0';
//     while((ch=getchar())!=EOF)
//     {
//         if(ch < '0' || ch > '9')
//             continue;
//         putchar(ch);
//     }//只打印数字字符
//     return 0;
// }

//BC13  ASCII码
//'a'  97
// int main()
// {
//     // printf("%c\n",'a');
//     // printf("%c\n",97);
// //若明确知道下面的数组存放的都是阿斯克码值不会有负数则可以把int换为char
//     int arr[]={73,32,99,97,110,32,100,111,32,105,116,33};
//     int i=0;
//     int sz=sizeof(arr)/sizeof(arr[0]);
//     while(i<sz)
//     {
//         printf("%c",arr[i]);
//         i++;
//     }
//     return 0;
// }

//BC14  出生日期输入输出
// int main()
// {
    // int year=0;
    // int month=0;
    // int day=0;
    // scanf("%4d%2d%2d",&year,&month,&day);
    // printf("year=%d\n",year);
    // printf("month=%02d\n",month);  //2d是要打印两位，02d是开头拿0补齐
    // printf("day=%02d\n",day);  //2d是要打印两位，02d是开头拿0补齐

// //BC11 学生基本信息输入输出
// //  My Own Code
//     long long n;  // 学号改为 long long
//     float c, e, m;
//     scanf("%lld;%f,%f,%f", &n, &c, &e, &m);  // %lld 读取 long long

//     printf("The each subject score of No.%lld is %.2f, %.2f, %.2f\n", n, c, e, m);
    
    //鹏哥代码
    // long id=0;
    // float c=0.0f;
    // float math=0.0f;
    // float eng=0.0f;
    // //输入
    // scanf("%d;%f,%f,%f",&id,&c,&math,&eng);
    // printf("The each subject score of No.%lld is %.2f, %.2f, %.2f\n", id, c, eng, math);

//  BC9 printf的返回值
    // int n=printf("Hello World!");
    // printf("\n%d\n",n);

// //  BC131  kiki学程序设计基础
//     printf("printf(\"Hello world!\\n\");\n");//在字符串之前
//     printf("cout<<\"Hello world!\"<<endl;\n");//加斜杠\即为转义

//  BC123  小乐乐找4个数中的最大数
//  My Own Code
    // int a,b,c,d;
    // scanf("%d %d %d %d",&a,&b,&c,&d);
    // if (a>b && b>c && c>d)
    // {
    //     printf("%d\n",a);
    // }
    // else if(b>a && a>c && c>d)
    // {
    //     printf("%d\n",b);
    // }
    // else if(c>a && a>b && b>d)
    // {
    //     printf("%d\n",c);
    // }
    // else
    // {
    //     printf("%d\n",d);
    // }
    
    //鹏哥代码
    // int arr[4]={0};  //0,1,2,3
    // int i = 0;
    // while (i<4)
    // {
    //     scanf("%d",&arr[i]);
    //     i++;
    // }
    // //假设第一个元素就是最大值
    // int max=arr[0];
    // i=1;
    // while (i<4)
    // {
    //     if(arr[i]>max){
    //         max=arr[i];
    //     }
    //     i++;
    // }
    // printf("%d\n",max);

// //BC27 计算球体的体积
//     double p=3.1415926;// My Own Code
//     float r=0.0f;  //其余皆为鹏哥代码
//     float v=0.0f;
//     scanf("%f",&r);
//     v=4/3.0 * p * r * r * r ;
//     printf("%f\n",v);
    // int a;//局部变量未初始化，它里面放的是随机值
    // a++;//有些ide会报错，vscode可以运行并打印结果为1
    // float f=0.0f;   
    // //0.0默认是double类型数据   
    // printf("%d\n",a);

    //BC25计算体重指数
    //My Own Code
    // int weight=0;
    // int height=0;
    // scanf("%d %d",&weight,&height);
    // double num=height/100.0; //在chatgpt提醒下我将int num换为如左代码
    // double BMI=weight/(num*num); // 且将100换为100.0，
    // printf("%.2f\n",BMI);//将printf代码中的%d\n换为%.2f

    //鹏哥代码
//     int weight=0;
//     int high=0;
//     scanf("%d %d",&weight,&high);

//     float bmi = weight/(high/100.0)/(high/100.0);
//     printf("%.2f\n",bmi);
//     return 0;
// }

#include<windows.h>
// int main()
// {
    // int i=0;
    // while (i<=10)
    // {
    //     printf("%d ",i);
    //     i++;
    // }

    // for (int i = 1; i <= 10; i++)
    // {
    //     if(i==5)
    //         break; //此处运行结果为1 2 3 4
    //                //若是continue则运行结果为1 2 3 4 6 7 8 9 10
    //     printf("%d ",i);
    // }
    // int arr[10]={1,2,3,4,5,6,7,8,9,10};
    // int i=0;
    // for (i = 0; i < 10; i++)
    // {
    //     printf("%d ",arr[i]);
    // }
    
    //for循环的的判断部分省略意味着判断恒成立
    // for(;;)
    // {
    //     printf("hehe\n");//死循环 一直打印hehe
    // }

    // for(int i=0;i<3;i++)
    // {
    //     for(int j=0;j<3;j++){
    //         printf("hehe\n");
    //     }  
    // }        //打印9个hehe

    // int i=0;
    // int j=0;
    // for(;i<3;i++)  //括号中省略条件则只打印三个hehe
    // {
    //     for(;j<3;j++){  //第二次跳出再进来j已经=3
    //         printf("hehe\n"); //，因为开头没有j=3
    //     }
    //}

    // int x,y;
    // for(x=0,y=0;x<2&&y<5;++x,y++);
    // {
    //     printf("hehe\n");
    // }  //此种写法亦是可行

    // do - while 循环
    // int i=1;
    // do
    // {
    //     printf("%d ",i);  //死循环
    // } while (i<=10);  //控制台一直打印1

    // do
    // {
    //     if(i==5)
    //         break;
    //     printf("%d ",i);  
    //     i++;
    // } while (i<=10); 

    //计算N的阶乘
    //1*2*3...*n,此即阶乘
    // int n=0;
    // int ret=1;
    // //此处不考虑溢出问题

    // scanf("%d",&n);
    // for (int i = 1; i <= n; i++)
    // {
    //     ret=ret * i;
    // }
    // printf("%d\n",ret);
    // printf("%d\n",sum);

    // //计算1！+2！+3！+4！+...+n!
    // int n=0;
    // int ret=1;
    // int sum=0;
    // //此处不考虑溢出问题

    // scanf("%d",&n);
    // for (int i = 1; i <= n; i++)
    // {
    //     ret=ret * i;
    //     sum=sum+ret;
    // }
    // printf("%d\n",ret);
    // printf("%d\n",sum);

    //鹏哥代码
        // int i=0;
        // int n=0;
        // int ret=1;
        // int sum;
        // for(n=1;n<=3;n++)
        // {
        //     ret=1;
        //     for(i=1;i<=n;i++)
        //     {
        //         ret=ret*i;
        //     }
        //     sum=sum+ret;
        // }
        // printf("%d\n",sum);
      // 上述代码实现效果较差
      //方法二
    // for(n=1;n<=10;n++)
    //     {
    //     ret=ret*n;
    //     sum=sum+ret;
    //     }
    //     printf("%d\n",sum);


    // int arr[]={1,2,3,4,5,6,7,8,9,10};
    // int k=7;
    // //在一个有序数组中查找具体的某个数字n
    // int i=0;
    // int sz=sizeof(arr)/sizeof(arr[0]);
    // for(i=0;i<sz;i++)
    // {
    //     if(arr[i]==k)
    //     {
    //         printf("找到了，下标是:%d\n",i);
    //         break;
    //     }
    // }
    // if(i==sz)
    // {
    //     printf("没找到\n");
    // }

    //二分法
    // int left=0;
    // int right=sz-1;
    // while(left<=right)
    // {
    //     int mid=(left+right)/2;
    // if(arr[mid]<k)
    // {
    //     left=mid+1;
    // }
    // else if(arr[mid]>k)
    // {
    //     right=mid-1;
    // }
    // else{
    //     printf("找到了,下标是:%d\n",mid);
    //     break;}
    // }
    // if(left>right)
    // {
    //     printf("找不到\n");
    // }

//  编写代码，演示多个字符从两端移动，向中间汇聚    
    // char arr1[]="WELCOME TO BIT";
    // char arr2[]="##############";
    // char buf[]="abc";

    // int left=0;
    // int right=strlen(arr2)-1; //int right=sizeof(but)/sizeof(but[0])-2;
    // while (left<=right)
    // {
    //     arr2[left]=arr1[left];
    //     arr2[right]=arr1[right];
    //     printf("%s\n",arr2);
    //     Sleep(1000);//延时一秒 头文件windows是对它的调用
    //     left++;
    //     right--; 
    // }

//  编写代码实现，模拟用户登录场景，并且只能登陆三次
//  只允许输入三次密码，如果密码正确则提示登陆成功，若三次皆错，退出程序    
//比较两个字符串是否相等，不能使用==，而应该使用库函数，strcmp
//如果返回值是0，表示2个字符串相等
//     int i=0;
//     char password[20]={ 0 };
//     //假设密码是字符串:abcdef
//     for(i=0;i<3;i++)
//     {
//         printf("请输入密码:> ");
//         scanf("%s",password);//数组名本就是地址，可以不用取地址
//         if(strcmp(password,"abcdef")==0)
//         {
//             printf("登录成功\n");
//             break;
//         }
//         else{
//             printf("密码错误!\n");
//         }
//     }
//     if(i==3)
//         printf("三次密码均输入错误，推出程序!");
//     return 0;
// }

// P39
// #define _CRT_SECURE_NO_WARNINGS
// void fun(int a[])
// {
//     printf("%zu",sizeof(a));
// }

// int main()
// {
//     int a[10]={0};
//     printf("%zu\n",sizeof(a));//10个元素，每个单位元素int，40个字节
//     printf("%zu\n",sizeof(a[1]));// 4个字节
//     fun(a);  //数组传参的时候传的是数组首元素的【地址】
//     return 0;
// }


#include<stdlib.h>
#include<time.h>
// //猜数小游戏
// void menu()
// {
//     printf("*****************************\n");
//     printf("*********  1. play  *********\n");
//     printf("*********  0. exit  *********\n");
//     printf("*****************************\n");
// }

// //0-RAND_MAX (32767)
// void game()
// {
//     int guess=0;
//     //1.生成随机数
//     int ret=rand()%100+1;//生成随机数的函数
//     //printf("%d\n",ret);
//     //2.猜数字 
//     while(1)
//     {
//         printf("请猜数字:>");
//         scanf("%d",&guess);
//         if(guess < ret)
//             printf("猜小了\n");
//         else if(guess > ret)
//             printf("猜大了\n");
//         else
//         {
//             printf("恭喜你，猜对了！\n");
//             break;
//         }
//     }
// }

// int main()
// {
//     int input = 0;
//     srand((unsigned int)time(NULL));
//     do
//     {
//         menu();
//         printf("请选择:>");
//         scanf("%d",&input);
//         switch (input)
//         {
//         case 1:
//             game();
//             break;
//         case 0:
//             printf("退出游戏\n");
//             break;
//         default:
//             printf("选择错误,重新选择!\n");
//             break; 
//         }
//     }while(input);
// }

// int main()
// {
// again:
//     printf("hehe\n");
//     printf("haha\n");
//     goto again;
// }

//关机程序
//1.电脑运行起来后，1分钟内关机
//2.如果输入：你是猪，就取消关机

//39
// #include<string.h>
// int main()
// {
//     char input[20]={ 0 };
//     system("shutdown -s -t 60");
// again:
//     printf("请注意,你的电脑在60秒内关机,如果输入:你是猪,就取消关机\n");
//     scanf("%s",input);
//     if(strcmp(input, "你是猪")==0)
//     {
//         system("shutdown -a");
//     }
//     else
//     {
//         goto again;
//     }
//     return 0;
// }

// void main()
// {
//     // char a1[20]={0};
//     // char a2[10]="Hello Bit";
//     // strcpy(a1,a2);
//     // printf("%s\n",a1);
//     char arr[20]="Hello World";
//     memset(arr,'x',5); //此处的arr即从下标0考试，替换数组中0-4个的值，若想替换World，则是arr+6
//     printf("%s\n",arr);
// }

// 自定义函数
// int get_max(int x,int y)
// {
//     return (x>y?x:y);
// }
// int main()
// {
//     int a=0;
//     int b=0;
//     scanf("%d %d",&a,&b);
//     //求较大值 函数的调用
//     int m=get_max(a,b);

//     printf("%d\n",m);
// }

//写一个函数可以交换两个整型变量的内容
// void swap(int a,int b)
// {
//     int c;
//     c=a;
//     a=b;
//     b=c;
// }
// 当实参传递给形参的时候，形参是实参的一份临时拷贝
// 对形参的修改不会影响实参
// void swap(int* px,int* py)
// {
//     int z=*px; //如果没有*则只是交换地址
//     *px=*py;
//     *py=z;
// }
// int Add(int x,int y)
// {
//     int z=0;
//     z=x+y;
//     return z;
// }
// int main()
// {
//     int a=0;
//     int b=0;
//     scanf("%d %d",&a,&b);
//     //int c=Add(a,b);
//     int c=Add(add(a,3),b);
//     printf("%d\n",c);
//     printf("交换前:a=%d b=%d\n",a,b);
//     //swap(a,b);
//     swap(&a,&b);
//     printf("交换后:a=%d b=%d\n",a,b);
//     return 0;
// }

// 判断输入的数是不是素数
// My own Code
// void main()
// {
//     int num,j=2;
//     printf("请输入一个数:");
//     //检查scanf的返回值，确保输入是一个有效的素数
//     if(scanf("%d",&num)!=1){
//         printf("输入无效，请输入一个整数。\n");
//         return 1;
//     }
//     if(num<2){
//         printf("%d 不是素数\n",num);
//     }else{
//         while ((j<=num/2))
//         {
//         if(num%j==0)
//             break;
//         else
//             j++;
//         }
//     if(j>num/2)
//         printf("%d是素数\n",num);
//     else
//         printf("%d不是素数\n",num);
//     }     
// }
// is_prime(int n)
// {
//     int j=0;
//     for(j=2;j<sqrt(n);j++){
//         if(n%j==0){
//             return 0;
//         }
//     }
//     return 1;
// }
// void main()
// {
//     int i=0;
// }

// p155 3.2文件的打开与关闭
//ANSIC规定使用fopen来打开文件，fclose来关闭文件
#include<string.h>
#include<errno.h>
int main()
{
    FILE* pf=fopen("TEST.txt","r");
    if(pf==NULL)
    {
        printf("%s\n",strerror(errno));
        return 1;
    }
    fclose(pf);//关闭文件
    pf=NULL;
    return 0;
}